package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

public class VerificationVO extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID列表 */
    private String ids;
    /**
     * 核销记录ID（meal_verification表主键）
     */
    private Long verificationId;

    /**
     * 订餐记录ID（meal_order表主键）
     */
    @Excel(name = "订餐ID")
    private Long orderId;
    /**
     * 培训ID
     */
    @Excel(name = "培训ID")
    private Long trainingId;

    @Excel(name = "员工ID")
    private Long empId;
    /**
     * 员工姓名
     */
    @Excel(name = "员工姓名")
    private String employeeName;

    /**
     * 员工编号
     */
    @Excel(name = "员工编号")
    private String employeeNo;

    /**
     * 培训名称
     */
    @Excel(name = "培训名称")
    private String trainingName;

    /**
     * 培训开始时间
     */
    @Excel(name = "培训开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 培训结束时间
     */
    @Excel(name = "培训结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 用餐日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用餐日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date mealDate;

    /**
     * 餐别
     */
    @Excel(name = "餐别")
    private String mealType;

    /**
     * 是否订餐
     */
    @Excel(name = "是否订餐", readConverterExp = "1=是,0=否")
    private Integer isOrdered;

    /**
     * 是否核销
     */
    @Excel(name = "是否核销", readConverterExp = "1=是,0=否")
    private Integer isVerified;

    /**
     * 核销时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date verifyTime;

    // 新增字段：员工信息
    @Excel(name = "联系电话")
    private String phone;           // 手机号码

    @Excel(name = "性别")
    private String gender;          // 性别

    @Excel(name = "部门")
    private String department;      // 部门

    @Excel(name = "邮箱")
    private String email;           // 邮箱

    // Getters and Setters
    public Long getVerificationId() {
        return verificationId;
    }

    public void setVerificationId(Long verificationId) {
        this.verificationId = verificationId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    public Long getEmpId() {
        return empId;
    }

    public void setEmpId(Long empId) {
        this.empId = empId;
    }
    public String getIds() {
        return ids;
    }

    public void setIds(String ids) {
        this.ids = ids;
    }
    public Long getTrainingId() {
        return trainingId;
    }

    public void setTrainingId(Long trainingId) {
        this.trainingId = trainingId;
    }
    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String getTrainingName() {
        return trainingName;
    }

    public void setTrainingName(String trainingName) {
        this.trainingName = trainingName;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getMealDate() {
        return mealDate;
    }

    public void setMealDate(Date mealDate) {
        this.mealDate = mealDate;
    }

    public String getMealType() {
        return mealType;
    }

    public void setMealType(String mealType) {
        this.mealType = mealType;
    }

    public Integer getIsOrdered() {
        return isOrdered;
    }

    public void setIsOrdered(Integer isOrdered) {
        this.isOrdered = isOrdered;
    }

    public Integer getIsVerified() {
        return isVerified;
    }

    public void setIsVerified(Integer isVerified) {
        this.isVerified = isVerified;
    }

    public Date getVerifyTime() {
        return verifyTime;
    }

    public void setVerifyTime(Date verifyTime) {
        this.verifyTime = verifyTime;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("verificationId", verificationId)
                .append("orderId", orderId)
                .append("empId", empId)
                .append("trainingId", trainingId)
                .append("employeeName", employeeName)
                .append("employeeNo", employeeNo)
                .append("trainingName", trainingName)
                .append("startDate", startDate)
                .append("endDate", endDate)
                .append("mealDate", mealDate)
                .append("mealType", mealType)
                .append("isOrdered", isOrdered)
                .append("isVerified", isVerified)
                .append("verifyTime", verifyTime)
                .append("phone", phone)
                .append("gender", gender)
                .append("department", department)
                .append("email", email)
                .toString();
    }
}